package com.wans.easyuibackend.utils.validation;

import net.sourceforge.pinyin4j.PinyinHelper;
import org.springframework.stereotype.Component;


@SuppressWarnings({"all"})
@Component
public class ChineseToPinyin {
  
    /**  
     * 将单个汉字转为拼音（不带声调）  
     *   
     * @param hanzi 汉字字符  
     * @return 对应的拼音（大写，不带声调）  
     */  
    public static String toPinyin(char hanzi) {  
        String[] pinyinArray = PinyinHelper.toHanyuPinyinStringArray(hanzi);  
        if (pinyinArray != null) {
            String spelling = pinyinArray[0];// pinyin4j默认返回多个拼音，但单个汉字一般只有一个拼音，这里取第一个  ,拼音后面包含声调去掉
            return spelling.substring(0,spelling.length()-1).toUpperCase();
        }  
        return String.valueOf(hanzi); // 如果不是汉字，则直接返回原字符  
    }  
  
    /**  
     * 将中文字符串转换为拼音全拼（不带声调）  
     *   
     * @param chinese 中文字符串  
     * @return 对应的拼音全拼（大写，不带声调）  
     */  
    public static String toPinyinString(String chinese) {  
        StringBuilder pinyin = new StringBuilder();  
        for (int i = 0; i < chinese.length(); i++) {  
            pinyin.append(toPinyin(chinese.charAt(i)));  
        }  
        return pinyin.toString().toUpperCase();
    }
}